from logica.proposiciones import *
from logica.reglas import *

class Justificacion(object):
    def __init__(self, regla_inferencia=None, parametros=None):
        self.regla_inferencia = regla_inferencia
        self.parametros = parametros
        
    def __repr__(self):
        repr_str = '%s' % str(self.regla_inferencia)
        if self.parametros:
            repr_str += ('(%s)' % ', '.join(self.parametros))
        return repr_str

class Argumento(object):
    def __init__(self, numeral=None, proposicion=None, justificacion=None):
        self.numeral = numeral
        self.proposicion = proposicion
        self.justificacion = justificacion
        
    def __repr__(self):
        repr_str = str(self.proposicion) + ' ' + str(self.justificacion)
        return repr_str

class EsquemaInferencia(object):
    def __init__(self, argumentos={}, elementos={}):
        self.argumentos = argumentos
        self.elementos = elementos
        
    def __repr__(self):
        repr_str = str(self.argumentos) + '\n'
        repr_str += str(self.elementos)
        return repr_str